<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:exsl="http://exslt.org/common"
     xmlns:php="http://php.net/xsl"
     xmlns:tpl="http://joos.nnov.ru/xsl"
     xmlns:rml="http://joos.nnov.ru/xml">
 
  <xsl:variable name="request">
    <xsl:copy-of select="rml:rml/rml:request" />
  </xsl:variable>

  <xsl:template match="@*" mode="error">
    <xsl:copy />
  </xsl:template>

  <xsl:template match="node()" mode="error">
    <xsl:copy>
      <xsl:apply-templates match="@*|node()" mode="error" />
    </xsl:copy>
  </xsl:template>
 
  <xsl:template match="rml:rml" mode="error">
    <xsl:copy>
      <xsl:apply-templates select="@*" mode="error" />
      <xsl:apply-templates select="rml:resource/rml:error" mode="error" />
    </xsl:copy>
  </xsl:template>
  
  <xsl:template name="error">
    <tpl:error>
      <xsl:text disable-output-escaping="yes">&lt;!-- </xsl:text>
      <xsl:apply-templates select="/rml:rml" mode="error" />
      <xsl:text disable-output-escaping="yes"> --&gt;</xsl:text>
    </tpl:error>
  </xsl:template>

  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="rml:rml/rml:resource/rml:error">
        <xsl:call-template name="error" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="rml:rml" />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

  <xsl:template match="@*|node()" mode="copy">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()" mode="copy" />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>
